home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / docs / complex / palettbl.c < prev    next >
C/C++ Source or Header  |  2000-05-22  |  823b  |  35 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <iocslib.h>
  4. #include <math.h>
  5.  
  6. #define C_PI (3.14159265358979323846264338328)  /* pi */
  7.  
  8. extern unsigned short *paTable;  /* パレットテーブル */
  9. extern int mxCnt;  /* 回数制限(1~65535) */
  10.  
  11. /* パレットテーブルを作る */
  12. void make_palet_table()
  13. {
  14.   unsigned short *p;
  15.   int n;
  16.  
  17.   paTable = malloc((mxCnt + 1) * sizeof(unsigned short));
  18.   if (paTable == NULL) {
  19.     printf("Can't allocate memory\n");
  20.     exit(1);
  21.   }
  22.   p = paTable;
  23.   for (n = 0; n < mxCnt; n++) {
  24.     double t = n / (mxCnt / 15.0);
  25.     int u, v;
  26.  
  27.     u = (int)(cos((t) * C_PI) * 14.0 + 26.5);
  28.     u = (u < 32) ? u : 31;
  29.     v = (int)(cos((t + 1.0) * C_PI) * 9.0 + 23.5);
  30.     v = (v < 32) ? v : 31;
  31.     *p++ = (unsigned short)HSVTORGB((192 * n) / mxCnt, u, v);
  32.   }
  33.   *p = 0;
  34. }
  35.